In video multicast/broadcast applications, video data are transmitted from the video server to multiple receivers over wired and/or wireless networks. Herein, a “/” is used to indicate alternative names for the same or similar components. A multicast system as used herein is a system in which a server transmits the same data to multiple receivers simultaneously, where the receivers form a subset of all the receivers up to and including all of the receivers. A broadcast system is a system in which a server transmits the same data to all of the receivers simultaneously. That is, a multicast system by definition can include a broadcast system.
The media server includes, among other components, a video encoder/packetizer that generates a stream of video packets, and an application layer forward error correction (FEC) encoder that applies cross-packet FEC coding to the video packets for reliable transmission. The receivers of multicast or broadcast video may be connected to the server via various wired or wireless access links. Different receivers of the same video may experience different packet loss rates at the same time due to different channel conditions and the packet loss rate for a given receiver varies over time. The receiving quality at different receivers or the same receiver varies over time. Furthermore, receivers may leave or join the multicast group so that the topology of network changes. To achieve reliable and efficient broadcast and multicast operation and satisfy the quality of service (QoS) requirements of multiple video receivers, the video server needs to adapt video coding parameters (e.g. the bit rate, the intra-frame rate, the intra-block rate, the packet size, etc.) and application-layer FEC overhead according to the varying receiver topology and the receiving channel conditions of multiple receivers. This means that the receivers frequently feed their channel condition back to the video server.
The problem to be solved by the present invention is to how to provide the channel condition feedback from multiple receivers to the video server efficiently. An efficient channel feedback method is important for optimizing the design and operation of the adaptive video multicast/broadcast system where the video server dynamically adjusts the video encoding parameters and the FEC overhead to be added to protect the stream of video packets according to the receiving channel conditions of multiple video receivers.
In some reported systems, the standard Real-Time Transport Control protocol (RTCP) is used for the receivers to feed their receiving channel conditions back to a video server. However, in the standard RTCP protocol, each participant (sender or receiver) independently sends the RTCP sender reports or receiver reports (containing the receiving channel conditions) periodically to all participants in the session. There are several problems with this approach. First, this approach may introduce high overhead resulting in scalability issue when the number of receivers increases. Second, a small RTCP report interval is required for fast channel feedback. This approach is not efficient for one-to-many communications such as video multicast/broadcast because the server will suffer from feedback implosion. It is important to conserve the RTCP control bandwidth, especially in wireless networks, so that the sender/transmitter/server efficiently gets necessary information for effective adaptation of video coding parameters and FEC overhead.
The present invention solves the above problems by providing a method for efficient feedback of receiving channels conditions for multiple receivers in an adaptive video multicast/broadcast system.